Q: Project Builder Ç≈ Mac OS X JNI (Java Native
Interface)
ÉâÉCÉuÉâÉäÇçÏê¨Ç∑ÇÈÇ…ÇÕǫǧÇ∑ÇÍnjǢǢÇ≈Ç∑Ç©ÅH
A: Project Builder ÇÕÅAJNI
ÉâÉCÉuÉâÉäÇ…ëŒâûǵÇΩÉeÉìÉvÉåÅ[ÉgÉvÉçÉWÉFÉNÉgÇ‹ÇΩÇÕÉeÉìÉvÉåÅ[ÉgÉ^Å[ÉQÉbÉgÇéùǡǃǢNjÇπÇÒÅBMac
OS X Ç…ëŒâûǵÇΩ JNI
ÉâÉCÉuÉâÉäÇÉrÉãÉhÇ∑ÇÈÇ…ÇÕÅAéüÇÃéËèáÇ…è]ǡǃÅAProject
Builder ÇÃÉ^Å[ÉQÉbÉgÇçÏê¨ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB
- ÅuProjectÅvÉÅÉjÉÖÅ[Ç≈êVǵǢÉ^Å[ÉQÉbÉgÇí«â¡ÇµÇ‹Ç∑ÅB
- ÅuLibraryÅvÇΔǢǧñºëOÇÃÉ^Å[ÉQÉbÉgÉeÉìÉvÉåÅ[ÉgÇëIëǵNjÇ∑ÅB
- É^Å[ÉQÉbÉgñºÇÅulibhello.jnilibÅvÇÃÇÊǧDžÅAlib{ÉâÉCÉuÉâÉäñº}.jnilib
Ç…ê›íËǵNjÇ∑ÅB
- êVǵǢÉ^Å[ÉQÉbÉgÇëIëǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAÉ^Å[ÉQÉbÉgÉpÉlÉãÇÃâEë§ÇÃÉpÉlÉãÇ…ÅuBuild
SettingsÅvÉ^ÉuÇ™ï\é¶Ç≥ÇÍÇ‹Ç∑ÅBÅuBuild
SettingsÅvÇÃÉ^Å[ÉQÉbÉgÇëIëǵNjÇ∑ÅB
- â∫ï˚å¸Ç…ÉXÉNÉçÅ[ÉãǵǃÅAÅuSearch pathsÅvÇï\é¶ÇµÇ‹Ç∑ÅB
- ÅuSearch pathsÅvÉpÉlÉãDždžÇÈÉwÉbÉ_Å[ÉäÉXÉgÇ…à»â∫ÇÃÉpÉXÇí«â¡ÇµÇ‹Ç∑ÅB
/System/Library/Frameworks/JavaVM.framework/Headers
|
- â∫ï˚å¸Ç…ÉXÉNÉçÅ[ÉãǵǃÅAÅuExpert Build
SettingsÅvÇï\é¶ÇµÇ‹Ç∑ÅB
- ÅuExpert Build SettingsÅvÇ≈
DYLIB_COMPATIBILITY_VERSIONÅAÇ®ÇÊÇ— DYLIB_CURRENT_VERSION ÉIÉvÉVÉáÉìÇçÌèúǵNjÇ∑ (delete
ÉLÅ[ÇâüÇ∑ÇΔÅADZÇÍÇÁÇÃÉIÉvÉVÉáÉìÇ™çÌèúÇ≥ÇÍÇ‹Ç∑)ÅB
- ÅuExpert Build SettingsÅvÇ≈ LIBRARY_STYLE ÉIÉvÉVÉáÉìÇ BUNDLE Ç…ïœçXǵNjÇ∑ (ílÇÃÉJÉâÉÄÇÉ_ÉuÉãÉNÉäÉbÉNÇ∑ÇÈÇΔïœçXÇ≈Ç´Ç‹Ç∑)ÅB
- ÉEÉCÉìÉhÉEÇÃç∂ë§Ç…džÇÈècï˚å¸ÇÃÉpÉlÉãÇ≈ÅuFilesÅvÉ^ÉuÇëIëǵNjÇ∑ÅB
- É^Å[ÉQÉbÉgÇ… Java
Ç…ÇÊǡǃê∂ê¨Ç≥ÇÍÇΩÉwÉbÉ_ÉtÉ@ÉCÉãÇΔÉlÉCÉeÉBÉué¿ëïÇí«â¡ÇµÇ‹Ç∑ÅB
íçà”:
JNI ÉâÉCÉuÉâÉäÇÕÅAJava
ÉvÉçÉpÉeÉBÇÃÅujava.library.pathÅvÇ≈íËã`Ç≥ÇÍÇΩÉpÉXDždžÇËÅASystem.loadLibrary("<ÉâÉCÉuÉâÉäñº>")
ÉÅÉ\ÉbÉhÇégǡǃÉçÅ[ÉhÇ≥ÇÍÇÈïKóvǙdžÇËÇ‹Ç∑ÅBjava.library.path
Çägí£Ç∑ÇÈÇ…ÇÕÅAí«â¡ÇÃÉfÉBÉåÉNÉgÉäÇä‹Çfi
DYLD_LIBRARY_PATH ä¬ã´ïœêîÇíËã`ǵNjÇ∑ÅB
|
Mac OS X ÇÃèÍçáÅAjava.library.path
ÇÃÉfÉtÉHÉãÉgílÇÕéüÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB
.:/usr/lib:/usr/lib/java:/lib:/System/Library/
Frameworks/JavaVM.framework/Versions/1.3/Libraries
|
Project Builder ÇΔ MRJAppBuilder Ç≈çÏÇÁÇÍÇΩ Java ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìÉoÉìÉhÉãì‡Çà Contents/Resources/Java/ ÉpÉXDždžÇÈÉâÉCÉuÉâÉäLJÉTÅ[É`ǵNjÇ∑ÅB
|
çXêVì˙ÅF2001 îN 6 åé 18 ì˙
|